#图片采集代码
import cv2 
import numpy as np 
import os 
import time 

# 设置保存图片的目录 
save_dir = '/home/ljd/ljd/picture/' 
os.makedirs(save_dir, exist_ok=True)  # 如果目录不存在，则创建 

# 打开摄像头，0表示默认摄像头 
cap = cv2.VideoCapture(0) 

if not cap.isOpened(): 
    print("无法打开摄像头") 
    exit() 

# 设置摄像头分辨率为 1920x1080 
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920) 
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080) 

# 创建一个名为 'Camera' 的窗口，并设置为全屏 
cv2.namedWindow('Camera', cv2.WND_PROP_FULLSCREEN) 
cv2.setWindowProperty('Camera', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) 

# 记录上次保存图像的时间 
last_save_time = time.time()

while True: 
    # 捕获一帧 
    ret, frame = cap.read() 

    if not ret: 
        print("无法获取帧") 
        break 

    # 将 BGR 转换为 RGB（可选） 
    frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) 

    # 显示图像，调整为 1920x1080 
    cv2.imshow('Camera', frame_rgb) 

    # 获取当前时间
    current_time = time.time()
    
    # 每 300 毫秒保存一次图像 
    if current_time - last_save_time >= 0.3:  # 300 毫秒
        timestamp = time.strftime("%Y%m%d_%H%M%S")  # 获取当前时间戳
        filename = os.path.join(save_dir, f"image_{timestamp}.jpg")  # 构造文件名
        cv2.imwrite(filename, frame)  # 保存图像
        print(f"保存图像: {filename}")  # 打印保存信息
        last_save_time = current_time  # 更新上次保存时间

    # 按 'q' 键退出 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
        break 

# 释放摄像头并关闭所有窗口 
cap.release() 
cv2.destroyAllWindows()